package com.strong.faker;

import cn.hutool.core.util.ObjUtil;
import com.strong.enum_.GenderEnum;
import com.strong.model.PersonName;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;

/**
 * 人名 模拟数据生成类
 *
 * @author Administrator
 * @date 2023/04/08
 */
@Slf4j
@Getter
public class PersonNameFaker extends BaseFaker<PersonName> {

    /**
     * 性别
     */
    private GenderEnum genderEnum;

    /**
     * 注入性别
     *
     * @param genderEnum 性别枚举
     * @return {@link IdNumberFaker}
     */
    public PersonNameFaker gender(GenderEnum genderEnum) {
        this.genderEnum = genderEnum;
        return this;
    }

    @Override
    protected void initialize() {
        if (ObjUtil.isNotNull(this.genderEnum)) {
            log.info("性别[{}]", this.genderEnum == GenderEnum.MALE ? "男" : "女");
        } else {
            log.info("性别[任意]");
        }
    }

    @Override
    protected PersonName getModel() {
        return new PersonName(this.genderEnum);
    }
}
